Иконки для Light Alloy создаются в виде пакета из двух файлов:
Связь этих двух файлов определяется их одинаковым именем при разных расширениях. Так, если вы создаёте библиотеку иконок с именем graphite.icl, то файл описания к ней должен иметь имя graphite.xml и никак иначе.
Всё начинается с создания иконки в соответствии с вашей идеей. В ОС Windows иконки формируются несколькими вариантами изображений: можно рисовать сколько угодно независимых вариантов иконок для каждого размера:
Необходимо помнить, что чем меньше размеров иконки вы сделаете, тем меньше места эта иконка будет занимать. Кроме того, чтобы ещё сильнее уменьшить размер иконок, к ним можно применять png-сжатие (к размерам 64х64 и выше). Оно позволяет уменьшить занимаемый размер иконки в 3-10 раз без потери качества.
Впрочем, есть минимальный эффективный набор размеров, которые рекомендуется использовать. Обратите внимание, что все размеры представляют собой квадрат:
Начать рисование иконки рекомендуется с самого большого размера - 256х256. А дальше придётся решать очень важный вопрос: как именно рисовать меньшие размеры. Тут есть два варианта:
Первый метод очень быстрый, но хорошие результаты даёт только там, где нет мелких деталей:
Если же в иконке присутствуют мелкие детали, то создание уменьшённого размера путём масштабирования будет выглядеть размытым, несмотря на все старания:
Как видим, чем меньше размер, тем хуже смотрится изображение.
В таких случаях рисование каждого размера отдельно, хоть и займёт намного больше времени, но даст куда более впечатляющий результат.
Обратите внимание, насколько всё чётко и ясно:
При создании библиотеки вам потребуется определить уровень её полноты и универсальности. Ваша библиотека может содержать:
Также можно комбинировать подходы. Например, можно создать иконки для трёх типов, а также персональные иконки для некоторых расширений.
От вашего выбора будут зависеть универсальность, удобство и размер вашего пакета иконок.
Файл описания отвечает хранит информацию об авторе, названии и кратком (очень кратком!) описании пакета иконок. Рекомендуется создавать файл, используя кодировку "UTF-8 with signature" (она же - UTF-8 BOM).
Внутри он может выглядеть, например, так:
<?xml version="1.0" encoding="UTF-8"?> <ICONLIB> <AUTHOR name="Ham" email="" homepage="" comments="256x48x32x16"/> <ICONS> <ICON id="0" ext="AAC,AC3,AIF,APE,AT3,AU,CDA,DTS,FLAC,MIDI,MKA,MOD,MP3,MPA,MPC,OGG,WAV,WMA,OPUS"/> <!-- audio --> <ICON id="1" ext="ASX,BDMV,CUE,IFO,LAP,LST,M3U,MPLS,PLS"/> <!-- playlist --> <ICON id="2" ext="AVI,AVS,FLV,M1V,M2TS,MKV,MOV,MP4,MPG,MPV,MTS,OGM,QT,RMVB,TS,VOB,WEBM"/> <!-- video --> </ICONS> </ICONLIB>
Разберёмся, что тут к чему. Вот обычная строка:
<AUTHOR name="Ham" email="" homepage="" comments="256x48x32x16"/>
Это тег — единичная команда. Он характеризуется особыми скобками: < >. У нас здесь используется два вида тегов:
Парные теги состоят из двух частей: открывающей и закрывающей (например, <ICONLIB> </ICONLIB>). Внутри парных тегов могут быть другие теги.
Единичные теги - <ICON /> - характеризуются косой чертой перед второй скобкой. По сути, запись "<ICON />" равнозначна записи "<ICON></ICON>". Так делается просто для упрощения.
В нашем случае теги состоят из таких частей:
Теперь пройдемся по нашему образцу и посмотрим, что за что отвечает:
Информация от автора:
<AUTHOR name="Ham" email="" homepage="" comments="256x48x32x16"/>
Заявление иконок:
<ICON id="1" ext="ASX,BDMV,CUE,IFO,LAP,LST,M3U,MPLS,PLS"/>
Всё, что нам остаётся, это проверить что у обоих файлов одинаковое название и опубликовать их вместе со скриншотом на специальной ветке форума, предварительно запаковав в архив (старожилы рекомендуют .zip).